package com.mdb.open.trade.domain.po.trade;

/*
* Copyright (C), 2017-2019 澳发科技(MDB)
* FileName: TfLoanRemittanceService.java
* Author:   you.yichao
* Date:     2019-11-13
* History:
* <author>          <time>          <version>          <desc>
* you.yichao         2019-11-13          V1.00             代码生成器初始生成代码
* -----------------------------------------------------------
* 作者姓名           修改时间           版本号            描述
*/


import com.baomidou.mybatisplus.annotation.*;
import com.mdb.bc.api.data.DataObjectBase;
import com.mdb.open.common.enums.trade.status.AttachFileStatusEnum;
import com.mdb.open.common.enums.trade.status.LoanRemitStatusEnum;
import com.mdb.open.common.enums.trade.status.OutwardRemitStatusEnum;
import com.mdb.open.common.enums.trade.type.ChargeBearerTypeEnum;
import com.mdb.open.common.enums.trade.type.RemittancePurposeTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* 类描述：
*  放款流水表实体类
*
* @author you.yichao
* @date 2019-11-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tf_loan_remittance")
public class LoanRemittance extends DataObjectBase {

    private static final long serialVersionUID = 1L;
    /**
    * 唯一性Id
    */
    @ApiModelProperty(value = "唯一性Id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
    * 客户编码
    */
    @ApiModelProperty(value = "客户编码")
    @TableField("customer_code")
    private String customerCode;

    /**
    * 客户名称
    */
    @ApiModelProperty(value = "客户名称")
    @TableField("customer_name")
    private String customerName;

    /**
    * 商户客户编码
    */
    @ApiModelProperty(value = "商户客户编码")
    @TableField("mcustomer_code")
    private String mcustomerCode;

    /**
    * 商户编号
    */
    @ApiModelProperty(value = "商户编号")
    @TableField("merchant_no")
    private String merchantNo;

    /**
    * 商户名称
    */
    @ApiModelProperty(value = "商户名称")
    @TableField("merchant_name")
    private String merchantName;

    /**
    * 借据单号
    */
    @ApiModelProperty(value = "借据单号")
    @TableField("loan_contract_no")
    private String loanContractNo;

    /**
    * 融资单号
    */
    @ApiModelProperty(value = "融资单号")
    @TableField("apply_order_no")
    private String applyOrderNo;

    /**
    * 贷款放款编号
    */
    @ApiModelProperty(value = "贷款放款编号")
    @TableField("loan_no")
    private String loanNo;

    /**
    * 贷款放款流水编号
    */
    @ApiModelProperty(value = "贷款放款流水编号")
    @TableField("loan_log_no")
    private String loanLogNo;

    /**
    * 汇款编号
    */
    @ApiModelProperty(value = "汇款编号")
    @TableField("outward_no")
    private String outwardNo;

    /**
    * 核心贷款放款编号
    */
    @ApiModelProperty(value = "核心贷款放款编号")
    @TableField("bank_loan_no")
    private String bankLoanNo;

    /**
    * 商户业务编号
    */
    @ApiModelProperty(value = "商户业务编号")
    @TableField("business_no")
    private String businessNo;

    /**
    * 收款账号
    */
    @ApiModelProperty(value = "收款账号")
    @TableField("receive_acc")
    private String receiveAcc;

    /**
    * 收款银行
    */
    @ApiModelProperty(value = "收款银行")
    @TableField("receive_bank")
    private String receiveBank;

    /**
    * 放款账号
    */
    @ApiModelProperty(value = "放款账号")
    @TableField("pay_acc")
    private String payAcc;

    /**
    * 还款账号
    */
    @ApiModelProperty(value = "还款账号")
    @TableField("repay_acc")
    private String repayAcc;

    /**
    * 银行贷款账号
    */
    @ApiModelProperty(value = "银行贷款账号")
    @TableField("bank_loan_acc")
    private String bankLoanAcc;

    /**
    * 银行额度编号
    */
    @ApiModelProperty(value = "银行额度编号")
    @TableField("bank_limit_no")
    private String bankLimitNo;

    /**
    * 银行客户编号
    */
    @ApiModelProperty(value = "银行客户编号")
    @TableField("bank_client_no")
    private String bankClientNo;

    /**
    * 银行产品编号
    */
    @ApiModelProperty(value = "银行产品编号")
    @TableField("bank_product_no")
    private String bankProductNo;

    /**
    * 汇出时间
    */
    @ApiModelProperty(value = "汇出时间")
    @TableField("outward_date")
    private LocalDateTime outwardDate;

    /**
    * 放款时间
    */
    @ApiModelProperty(value = "放款时间")
    @TableField("pay_date")
    private LocalDateTime payDate;

    /**
    * 放款金额
    */
    @ApiModelProperty(value = "放款金额")
    private BigDecimal principal;

    /**
    * 币种
    */
    @ApiModelProperty(value = "币种")
    private String ccy;

    /**
    * 利息总费率
    */
    @ApiModelProperty(value = "利息总费率")
    @TableField("total_rate")
    private BigDecimal totalRate;

    /**
    * 逾期利率
    */
    @ApiModelProperty(value = "逾期利率")
    @TableField("overdue_rate")
    private BigDecimal overdueRate;

    /**
    * 起息日
    */
    @ApiModelProperty(value = "起息日")
    @TableField("value_date")
    private LocalDateTime valueDate;

    /**
    * 到期日
    */
    @ApiModelProperty(value = "到期日")
    @TableField("expiry_date")
    private LocalDateTime expiryDate;

    /**
    * 用途
    */
    @ApiModelProperty(value = "用途")
    private RemittancePurposeTypeEnum purposes;

    /**
    * 费用承担方
    */
    @ApiModelProperty(value = "费用承担方")
    @TableField("charge_bearer")
    private ChargeBearerTypeEnum chargeBearer;

    /**
    * 附言
    */
    @ApiModelProperty(value = "附言")
    private String details;

    /**
    * 汇出用途
    */
    @ApiModelProperty(value = "汇出用途")
    @TableField("out_purposes")
    private RemittancePurposeTypeEnum outPurposes;

    /**
    * 汇出费用承担方
    */
    @ApiModelProperty(value = "汇出费用承担方")
    @TableField("out_charge_bearer")
    private ChargeBearerTypeEnum outChargeBearer;

    /**
    * 汇出附言
    */
    @ApiModelProperty(value = "汇出附言")
    @TableField("out_details")
    private String outDetails;

    /**
    * 状态
    */
    @ApiModelProperty(value = "状态")
    private LoanRemitStatusEnum status;

    /**
    * 汇出状态
    */
    @ApiModelProperty(value = "汇出状态")
    @TableField("out_status")
    private OutwardRemitStatusEnum outStatus;

    /**
    * 核销单状态
    */
    @ApiModelProperty(value = "核销单状态")
    @TableField("slip_file_status")
    private AttachFileStatusEnum slipFileStatus;

    /**
    * 打款水单状态
    */
    @ApiModelProperty(value = "打款水单状态")
    @TableField("pay_file_status")
    private AttachFileStatusEnum payFileStatus;

    /**
    * 备注
    */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
    * 创建时间
    */
    @ApiModelProperty(value = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
    * 更新时间
    */
    @ApiModelProperty(value = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
    * 乐观锁版本号
    */
    @ApiModelProperty(value = "乐观锁版本号")
    @Version
    private Integer version;

    /**
    * 删除标识
    */
    @ApiModelProperty(value = "删除标识")
    @TableLogic
    private boolean deleted;

}
